<Project>
    <PropertyGroup>
        <FeatureCoreCLR>true</FeatureCoreCLR>
        <FeatureEventTrace>true</FeatureEventTrace>
        <FeatureICastable>true</FeatureICastable>
        <FeaturePerfTracing>true</FeaturePerfTracing>
        <FeatureTypeEquivalence>true</FeatureTypeEquivalence>
        <ProfilingSupportedBuild>true</ProfilingSupportedBuild>
    </PropertyGroup>

    <PropertyGroup Condition="'$(TargetsUnix)' == 'true'">
        <FeatureXplatEventSource Condition="'$(TargetOS)' == 'linux'">true</FeatureXplatEventSource>
        <FeatureArrayStubAsIL>true</FeatureArrayStubAsIL>
        <FeatureMulticastStubAsIL>true</FeatureMulticastStubAsIL>
        <FeatureComWrappers>true</FeatureComWrappers>
    </PropertyGroup>

    <PropertyGroup Condition="'$(TargetsWindows)' == 'true'">
        <FeatureArrayStubAsIL Condition="'$(Platform)' != 'x86'">true</FeatureArrayStubAsIL>
        <FeatureMulticastStubAsIL Condition="'$(Platform)' != 'x86'">true</FeatureMulticastStubAsIL>
        <FeatureComWrappers>true</FeatureComWrappers>
        <FeatureCominterop>true</FeatureCominterop>
        <FeatureCominteropApartmentSupport>true</FeatureCominteropApartmentSupport>
    </PropertyGroup>

    <PropertyGroup Condition="'$(TargetsOSX)' == 'true' OR '$(TargetsMacCatalyst)' == 'true' OR '$(TargetsiOS)' == 'true' OR '$(TargetstvOS)' == 'true'">
        <FeatureObjCMarshal>true</FeatureObjCMarshal>
    </PropertyGroup>

    <PropertyGroup Condition="!('$(TargetsWindows)' == 'true' AND '$(Platform)' == 'x86')">
        <FeatureEHFunclets>true</FeatureEHFunclets>
    </PropertyGroup>

    <PropertyGroup>
        <DefineConstants Condition="'$(FeatureArrayStubAsIL)' == 'true'">$(DefineConstants);FEATURE_ARRAYSTUB_AS_IL</DefineConstants>
        <DefineConstants Condition="'$(FeatureMulticastStubAsIL)' == 'true'">$(DefineConstants);FEATURE_MULTICASTSTUB_AS_IL</DefineConstants>
        <DefineConstants Condition="'$(FeatureComWrappers)' == 'true'">$(DefineConstants);FEATURE_COMWRAPPERS</DefineConstants>
        <DefineConstants Condition="'$(FeatureCominterop)' == 'true'">$(DefineConstants);FEATURE_COMINTEROP</DefineConstants>
        <DefineConstants Condition="'$(FeatureCominteropApartmentSupport)' == 'true'">$(DefineConstants);FEATURE_COMINTEROP_APARTMENT_SUPPORT</DefineConstants>
        <DefineConstants Condition="'$(FeatureObjCMarshal)' == 'true'">$(DefineConstants);FEATURE_OBJCMARSHAL</DefineConstants>
        <DefineConstants Condition="'$(FeaturePerfTracing)' == 'true'">$(DefineConstants);FEATURE_PERFTRACING</DefineConstants>
        <DefineConstants Condition="'$(FeatureXplatEventSource)' == 'true'">$(DefineConstants);FEATURE_EVENTSOURCE_XPLAT</DefineConstants>
        <DefineConstants Condition="'$(FeatureTypeEquivalence)' == 'true'">$(DefineConstants);FEATURE_TYPEEQUIVALENCE</DefineConstants>
        <DefineConstants Condition="'$(FeatureICastable)' == 'true'">$(DefineConstants);FEATURE_ICASTABLE</DefineConstants>
        <DefineConstants Condition="'$(FeatureEHFunclets)' == 'true'">$(DefineConstants);FEATURE_EH_FUNCLETS</DefineConstants>

        <DefineConstants Condition="'$(ProfilingSupportedBuild)' == 'true'">$(DefineConstants);PROFILING_SUPPORTED</DefineConstants>
    </PropertyGroup>
</Project>
